package com.pm.business.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.pm.common.annotation.Excel;
import com.pm.common.core.domain.BaseEntity;

/**
 * 基本资料管理对象 project_person
 * 
 * @author zxl
 * @date 2022-05-05
 */
public class ProjectPerson extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long personId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String personName;

    /** 状态 */
    @Excel(name = "状态", readConverterExp = "0=在职,1=离职")
    private String status;

    /** 入职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date joinTime;

    /** 离职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaveTime;

    /** 缴社保日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "缴社保日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date socialInsuranceTime;

    /** 职称 */
    @Excel(name = "职称", readConverterExp = "0=无,1=高级,2=中级")
    private String title;

    /** 隶属性质 */
    @Excel(name = "隶属性质", readConverterExp = "0=本单位人员,1=外聘人员")
    private String externalUnits;

    /** 人员类别 */
    @Excel(name = "人员类别", readConverterExp = "a=施工员,b=质量员,c=安全员,d=标准员,e=材料员,f=机械员,h=劳务员(预算员),i=资料员,j=项目经理,k=技术负责人,l=一级建造师,m=二级建造师")
    private String personType;

    /** 人员专业 */
    @Excel(name = "人员专业", readConverterExp = "1=土建,2=设备安装,3=装修")
    private String personMajor;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creator;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新时间 */
    private Date updatedTime;

    private Boolean locked;

    //查询条件
    private List<String>majorList;

    //查询条件
    private List<String>personTypeList;

    /** 证书管理信息 */
    private List<PersonCertificate> personCertificateList;

    private String projectName;

    private String lockStatus;

    private List<CurrentProject> personProjectList;

    public String getLockStatus() {
        return lockStatus;
    }

    public void setLockStatus(String lockStatus) {
        this.lockStatus = lockStatus;
    }

    public void setPersonId(Long personId)
    {
        this.personId = personId;
    }

    public Long getPersonId() 
    {
        return personId;
    }
    public void setPersonName(String personName) 
    {
        this.personName = personName;
    }

    public String getPersonName() 
    {
        return personName;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setJoinTime(Date joinTime) 
    {
        this.joinTime = joinTime;
    }

    public Date getJoinTime() 
    {
        return joinTime;
    }
    public void setLeaveTime(Date leaveTime) 
    {
        this.leaveTime = leaveTime;
    }

    public Date getLeaveTime() 
    {
        return leaveTime;
    }
    public void setSocialInsuranceTime(Date socialInsuranceTime) 
    {
        this.socialInsuranceTime = socialInsuranceTime;
    }

    public Date getSocialInsuranceTime() 
    {
        return socialInsuranceTime;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public Boolean getLocked() {
        return locked;
    }

    public void setLocked(Boolean locked) {
        this.locked = locked;
    }

    public String getTitle()
    {
        return title;
    }
    public void setExternalUnits(String externalUnits) 
    {
        this.externalUnits = externalUnits;
    }

    public String getExternalUnits() 
    {
        return externalUnits;
    }
    public void setPersonType(String personType) 
    {
        this.personType = personType;
    }

    public String getPersonType() 
    {
        return personType;
    }
    public void setPersonMajor(String personMajor) 
    {
        this.personMajor = personMajor;
    }

    public String getPersonMajor() 
    {
        return personMajor;
    }
    public void setCreator(String creator) 
    {
        this.creator = creator;
    }

    public String getCreator() 
    {
        return creator;
    }
    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }
    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    public List<PersonCertificate> getPersonCertificateList()
    {
        return personCertificateList;
    }

    public void setPersonCertificateList(List<PersonCertificate> personCertificateList)
    {
        this.personCertificateList = personCertificateList;
    }

    public List<String> getMajorList() {
        return majorList;
    }

    public void setMajorList(List<String> majorList) {
        this.majorList = majorList;
    }

    public List<String> getPersonTypeList() {
        return personTypeList;
    }

    public void setPersonTypeList(List<String> personTypeList) {
        this.personTypeList = personTypeList;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public List<CurrentProject> getPersonProjectList() {
        return personProjectList;
    }

    public void setPersonProjectList(List<CurrentProject> personProjectList) {
        this.personProjectList = personProjectList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("personId", getPersonId())
            .append("personName", getPersonName())
            .append("status", getStatus())
            .append("joinTime", getJoinTime())
            .append("leaveTime", getLeaveTime())
            .append("socialInsuranceTime", getSocialInsuranceTime())
            .append("title", getTitle())
            .append("externalUnits", getExternalUnits())
            .append("personType", getPersonType())
            .append("personMajor", getPersonMajor())
            .append("creator", getCreator())
            .append("createdTime", getCreatedTime())
            .append("updateBy", getUpdateBy())
            .append("updatedTime", getUpdatedTime())
            .append("personCertificateList", getPersonCertificateList())
            .toString();
    }
}
